<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" href="index.css" />
		<!-- 引入Vue.js -->
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
		<title></title>
	</head>
	<body>
		<!-- 声明式渲染 -->
		<div id = "app">
			{{ message }}
		</div>
		
		<!-- 绑定元素特性：
			v-bind  被称为指令。
			指令带有前缀 v- ，以表示它们是Vue提供的特殊性。
		 -->
		<div id = "app-2">
			<span v-bind:title="message">
				鼠标悬停几秒钟查看此处动态绑定的提示信息！
			</span>
		</div>
		
		<!-- 条件 -->
		<div id = "app-3">
			<p v-if="seen">现在你看到我了</p>
		</div>
		
		<!-- 循环 -->
		<div id="app-4">
			<ol>
				<li v-for="todo in todos">
					{{ todo.text }}
				</li>
			</ol>
		</div>
		
		<!-- 处理用户输入 
				v-on 指令添加一个事件监听器。
		-->
		<div id = "app-5">
			<p>{{ message }}</p>
			<button v-on:click="reverseMessage">逆转消息</button>
		</div>
		
		<!-- v-model 指令，实现表单输入和应用状态之间的双向绑定 -->
		<div id="app-6">
			<p>{{message}}</p>
			<input v-model="message" />
		</div>
		
		<!-- 构建一个组件模板
		<ol>
			<!-- 创建一个 todo-item 组件的实例 -->
			<!-- <todo-item></todo-item> -->
		<!-- </ol> -->
		<div id="app-7">
			<ol>
				<!-- 
				 现在我们为每个 todo-item 提供 todo 对象
				 todo 对象是变量，即其内容可以是动态的。
				 我们也需要每个组件提供一个 key
				 -->
				 <todo-item
					v-for="item in groceryList"
					v-bind:todo="item"
					v-bind:key = "item.id"
				 ></todo-item>
			</ol>
		</div>
		
		<script src="index.js"></script>
	</body>
</html>
